/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import bean.Curso;
import bean.Disciplina;
import bean.Horarios;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.swing.JOptionPane;

/**
 *
 * @author Jennerson
 */
public class DisciplinaDao {

    public void Salvar(Disciplina disciplina) {

        EntityManager em = FabricaConexao.getConexao().createEntityManager();

        try {
            em.getTransaction().begin();//iniciando conexão
            Disciplina d = em.find(Disciplina.class, disciplina.getCodDisciplina());
            if (!disciplina.equals(d)) {
                em.persist(disciplina);
                JOptionPane.showMessageDialog(null, "Curos cadastrado com sucesso!");
            } else {
                em.merge(disciplina);
                JOptionPane.showMessageDialog(null, "Curso alterado com sucesso!");
            }
            em.getTransaction().commit();
        } finally {
            em.close();//fechando conexão
        }

    }

    public void Excluir(int id) {

        EntityManager em = FabricaConexao.getConexao().createEntityManager();

        try {
            em.getTransaction().begin();
            Disciplina disciplina = em.find(Disciplina.class, id);

            em.remove(disciplina);
            em.getTransaction().commit();
            JOptionPane.showMessageDialog(null,
                    "Exclusão realizada com sucesso");

        } finally {
            em.close();
        }

    }

    public Disciplina Consultar(int id) {

        EntityManager em = FabricaConexao.getConexao().createEntityManager();
        Disciplina disciplina = null;
        try {
            disciplina = em.find(Disciplina.class, id);
        } finally {
            em.close();
        }
        return disciplina;

    }

    public Disciplina Alterar(Disciplina disciplina) {
        EntityManager em = FabricaConexao.getConexao().createEntityManager();
        try {
            em.getTransaction().begin();
            if (disciplina.getCodDisciplina() == 0) {
                JOptionPane.showMessageDialog(null, "Disciplina cadastrada com sucesso");
            } else {
                em.getTransaction().commit();
            }
        } finally {
            em.close();
        }
        return disciplina;
    }

    public List<Disciplina> Listar() {
        EntityManager em = FabricaConexao.getConexao().createEntityManager();
        List<Disciplina> ld;
        Query query = em.createQuery("select d from Disciplina d");
        ld = query.getResultList();
        em.close();
        return ld;
    }

    public int getId() {
        List<Disciplina> ld;
        EntityManager em = FabricaConexao.getConexao().createEntityManager();
        Query query = em.createQuery("select d from Disciplina d ORDER BY d.codDisciplina DESC", Disciplina.class);
        ld = query.getResultList();
        int i = ld.get(0).getCodDisciplina();
        em.close();
        return i;
    }

}
